#include "snakeApp.h"
#include "Moose.h"
#include "AppFactory.h"
#include "ModulesApp.h"
#include "MooseSyntax.h"


template <>
InputParameters
validParams<snakeApp>()
{
  InputParameters params = validParams<MooseApp>();
  params.set<bool>("use_legacy_dirichlet_bc") = false;
  params.set<bool>("use_legacy_material_output") = false;
  return params;
}



snakeApp::snakeApp(InputParameters parameters) : MooseApp(parameters)
{
  snakeApp::registerAll(_factory, _action_factory, _syntax);
}

snakeApp::~snakeApp() {}

void
snakeApp::registerAll(Factory & f, ActionFactory & af, Syntax & s)
{
  ModulesApp::registerAll(f, af, s);
  Registry::registerObjectsTo(f, {"snakeApp"});
  Registry::registerActionsTo(af, {"snakeApp"});

  /* register custom execute flags, action syntax, etc. here */
}

void
snakeApp::registerApps()
{
  registerApp(snakeApp);
}

/***************************************************************************************************
 *********************** Dynamic Library Entry Points - DO NOT MODIFY ******************************
 **************************************************************************************************/
extern "C" void
snakeApp__registerAll(Factory & f, ActionFactory & af, Syntax & s)
{
  snakeApp::registerAll(f, af, s);
}
extern "C" void
snakeApp__registerApps()
{
  snakeApp::registerApps();
}
